package br.com.sgc.dao;

import java.util.Date;
import java.util.List;

import javax.ejb.Stateless;

import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;

import br.com.sgc.entities.financeiro.Conta;
import br.com.sgc.entities.financeiro.ContasPagar;
import br.com.sgc.entities.financeiro.ContasReceber;
import br.com.sgc.entities.geral.Clinica;

@Stateless
public class ContaDao extends GenericDao<Conta> {

	private static final long serialVersionUID = -5808236372718937315L;

	@SuppressWarnings("unchecked")
	public List<Conta> findContasPorData(Date dataCaixa, Clinica clinica) {
		Criteria criteria = getCriteria(Conta.class);
		criteria.add(Restrictions.eq("clinica.id", clinica.getId()));
		criteria.add(Restrictions.eq("quitado", Boolean.TRUE));
		criteria.add(Restrictions.eq("dataRealPagamento", dataCaixa));
		List<Conta> list = criteria.list();
		
		for(Conta c: list){
			if(c instanceof ContasReceber){
				((ContasReceber)c).getPedidoVenda().toString();
				((ContasReceber)c).getPedidoVenda().getCliente().toString();
				((ContasReceber)c).getPedidoVenda().getCliente().getPessoa().toString();
			} else if (c instanceof ContasPagar){
				((ContasPagar)c).getPedidoCompra().toString();
				((ContasPagar)c).getPedidoCompra().getFornecedor().toString();
			}
			
		}
		
		
		return list;
	}

}
